package org.jrazdacha.bittorrent.modelling.core;

public abstract class Id {
	public abstract Object getValue();
	
	@Override
	public boolean equals(Object otherObj) {
		if (this == otherObj) {
			return true;
		}
		
		if (otherObj == null) {
			return false;
		}
		
		if (getClass() != otherObj.getClass()) {
			return false;
		}
		
		return customEquals(otherObj);		
	}
	
	protected abstract boolean customEquals(Object otherObj);
}
